import java.util.Arrays;

//一般情况下一个文件中只定义一个类

class WashMachine {
    //一般情况下一个java文件中只有一个类
    //类名采用大驼峰形式 ，每个单词的首字母大写
    //字段（也叫属性）都是在  类里面 在  方法外  定义
    //成员属性 也称成员变量
    public String brand;//品牌
    public String Type;//型号
    public double weight;//重量
    public double longth;//长
    public double width;//宽
    public double height;//高
    public String color;//颜色
    //成员方法
    public void washClothes() {//洗衣服
        System.out.println("洗衣服功能");
    }
    public void dryClothes() {//脱水
        System.out.println("脱水功能");
    }
    public void setTime() {//定时
        System.out.println("定时功能");
    }
}
//定义一个狗
class Dog {
    public String name;//名字
    public int age;
    public String color;
    public void eat() {
        System.out.println("吃饭!");
    }
}
public class Test {
    public static void main(String[] args) {
        //这就叫做实例化对象
        WashMachine washMachine1 = new WashMachine();//WashMachine这是一个类也叫一个类型
        washMachine1.brand = "小天鹅";//可以通过赋值来进行区分不同的对象
        WashMachine washMachine2 = new WashMachine();
        washMachine2.brand = "美的";
        //结论： 我们可以使用new关键字来实例化多个对象
    }
    //给定一个大小为 n 的数组，找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。
   // 你可以假设数组是非空的，并且给定的数组总是存在多数元素。
    public static void main4(String[] args) {
        int[] array = {1,2,3,4,5,5,5,5,5,5};
        Arrays.sort(array);
        System.out.println(array[array.length / 2]);
    }
    //数组中只有一个数出现一次，其他的都出现两次，找出这个单身狗
    public static int func2(int[] array) {
        int sum = array[0];
        for(int i = 1; i < array.length; i++) {
            sum ^= array[i];
        }
        return sum;
    }
    public static void main3(String[] args) {
        int[] array = {1,2,3,2,3,1,5};
        System.out.println(func2(array));
    }
    /*给定一个整数数组 nums 和一个整数目标值 target，请你在该数组中找出 和为目标值 target  的那 两个 整数，并返回它们的数组下标。
    你可以假设每种输入只会对应一个答案。但是，数组中同一个元素在答案里不能重复出现。
    你可以按任意顺序返回答案。
    著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。*/
    public static int[] twoSum(int[] nums, int target) {
        int[] ret = new int [2];
        for(int left = 0; left < nums.length - 1; left++) {
            for(int right = left + 1; right < nums.length; right++) {
                if(nums[left] + nums[right] == target) {
                    ret[0] = left;
                    ret[1] = right;
                    return ret;
                }
            }
        }
        return null;
    }
    public static void main2(String[] args) {
        int[] num = {1,2,3,4,5,7,10,25,17};
        int target = 15;
        System.out.println(Arrays.toString(twoSum(num,target)));
    }
    public static void func(int[] array) {
        int left = 0;
        int right = array.length - 1;
        int tmp = 0;//实现两个数交换的中间变量
        while(left < right) {
            while(left < right && array[left] % 2 != 0) {
                left++;
            }
            while (left < right && array[right] % 2 == 0) {
                right--;
            }
            if (left < right) {
                tmp = array[left];
                array[left] = array[right];
                array[right] = tmp;
            }
        }
    }
    public static void main1(String[] args) {//奇数在前，偶数在后
        int[] array = {1,2,4,3,9,6,8};
        func(array);
        System.out.println(Arrays.toString(array));
    }
}
